#ifndef _WORLD_PACKET_HPP
#define _WORLD_PACKET_HPP
#include "ByteBuffer.hpp"
#include <cstdint>

class WorldPacket : public ByteBuffer
{
public:
    WorldPacket(uint16_t opcode, uint32_t size = 1024) : ByteBuffer{size}, _opcode(opcode){}
    WorldPacket(const WorldPacket& other) : ByteBuffer(other), _opcode(other._opcode) {}
    WorldPacket(WorldPacket&& other) noexcept : ByteBuffer(std::move(other)), _opcode(other._opcode){}
    WorldPacket& operator=(const WorldPacket& other) = delete;
    WorldPacket& operator=(WorldPacket&& other) = delete;
public:
    uint16_t GetOpcode() { return _opcode; }
private:
    uint16_t _opcode;
};

#endif